home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume91 / news / barn_201 / part01 / article.h < prev    next >
C/C++ Source or Header  |  1991-02-07  |  2KB  |  79 lines

  1. /*
  2.  *    File Name:        article.h
  3.  *    Project:        BARN - Bah's Amiga ReadNews.
  4.  *    Purpose:        Define structure holding info for each article.
  5.  *    Author:            Jeff Van Epps
  6.  *    Created:        02 Sep 89
  7.  *    Last Modified:    06 Jan 91
  8.  *    Comments:
  9.  *    History:
  10.  *        02 Sep 89/JVE    Created.
  11.  *        28 Sep 89/JVE    Added textpos.
  12.  *        18 Oct 90/JVE    Added HDR_xxx defines.
  13.  *        06 Jan 91/JVE    Added subject pointer in article_info as a speed
  14.  *                        optimization.
  15.  */
  16.  
  17. /*
  18.  *    Hold header information for an article. Example:
  19.  *
  20.  *    fieldname="From"    fieldvalue="foo@bar.com"
  21.  *    fieldname="Subject"    fieldvalue="Care and Eating of Foo Bars"
  22.  *        etc.
  23.  *
  24.  */
  25.  
  26. typedef struct header_info {
  27.     char                *fieldname;        /* name of field (before :) */
  28.     char                *fieldvalue;    /* text of field (after :) */
  29.     struct header_info    *next;            /* next header in chain */
  30.     } HEADER_INFO;
  31.  
  32. /*
  33.  *    Information for each article.
  34.  */
  35.  
  36. typedef struct article_info {
  37.     long                number;            /* article number within newsgroup */
  38.     int                    beenread;        /* has article been read? */
  39.     long                textpos;        /* where headers end/text begins */
  40.     int                    done;            /* generic temporary marker */
  41.     char                *subject;        /* points at value of Subject hdr */
  42.     struct header_info    *headers;        /* top of header field chain */
  43.     struct article_info    *next;            /* ptr to next article in newsgroup */
  44.     } ARTICLE_INFO;
  45.  
  46. /*
  47.  *    Defines for common header fields.
  48.  */
  49.  
  50.  
  51. # define    HDR_FROM        "From"
  52. # define    HDR_TO            "To"
  53. # define    HDR_CC            "Cc"
  54. # define    HDR_SUBJECT        "Subject"
  55. # define    HDR_SENDER        "Sender"
  56. # define    HDR_DATE        "Date"
  57.  
  58. /*
  59.  *    Declare functions.
  60.  */
  61.  
  62. # ifdef sun 
  63.  
  64. ARTICLE_INFO    *ParseArticle();
  65. int                GetNextHeader();
  66. void            DestroyArticle();
  67. void            DumpArticle();
  68. char            *GetHeader();
  69.  
  70. # else
  71.  
  72. ARTICLE_INFO    *ParseArticle( char *filename );
  73. int                GetNextHeader( FILE *fp, HEADER_INFO ***hdr );
  74. void            DestroyArticle( ARTICLE_INFO *article );
  75. void            DumpArticle( ARTICLE_INFO *article );
  76. char            *GetHeader( HEADER_INFO *headers, char *name );
  77.  
  78. # endif
  79.